/*
 * Copyright (C) 2015 MC
 * All rights reserved.
 *
 * $$File: $$
 * $$DateTime: $$
 * $$Author: $$
 * $$Revision: $$
 */

package com.glela.api.upload.qiniu;

import java.io.File;
import java.util.Map;

import org.apache.commons.httpclient.HttpException;

/**
 * @author 
 */
public interface IUploadObject
{

	/**
	 * @param id
	 *            视频和视频截图列表ID
	 * @return Map<String, Object> 当前返回的结果集中，KEY分别取"videoProperties" 为一个对象,对象中的属性"videoPath"为路径
	 *         ;视频截图"imageProperties"为一个List<ImageProperties>的 泛型，同样取对象中的属性"imagePath"为路径
	 * @throws HttpException
	 * @throws Exception
	 */
	public Map<String, Object> getQNInfoHttpMessage(String id) throws HttpException, Exception;

	/**
	 * 获取视频截图路径和视频路径
	 *
	 * @param name
	 *            七牛返回的ID
	 * @param bitRate
	 *            上传视频的码率
	 * @param width
	 *            视频截图的宽
	 * @param height
	 *            视频截图的高
	 * @param videoType
	 *            视频的文件类型
	 * @return Map<String, Object> 当前返回的结果集中;返回QNId,取KEY “QNId”
	 * @throws HttpException
	 * @throws Exception
	 */
	public Map<String, Object> pfopVideo(String name, String bitRate, String width, String height, String videoType);

	/**
	 * 上传视频
	 *
	 * @param mediaContent
	 *            视频内容
	 * @return 返回视频属性 key 的名称为“videoProperties” 取出当中的属性"videoPath" 获得七牛ID
	 */
	public Map<String, Object> uploadVideo(byte[] mediaContent);
	public Map<String, Object> uploadVideo(File file);

	/**
	 * 上传图片
	 *
	 * @param mediaContent
	 *            图片内容
	 * @param width
	 *            图片的宽
	 * @param height
	 *            图片的高
	 * @return 返回图片属性 key 的名称为 “imageProperties”
	 */
	Map<String, Object> uploadImage(byte[] mediaContent, String width, String height);
	
	
	
	/**
	 * 获取视频相关信息（视频时间等）
	 * @param videoPath
	 * @return
	 * @throws HttpException
	 * @throws Exception
	 */
	public Map<String, Object> getVideoInfoHttpMessage(String videoPath) throws HttpException, Exception;
	
	public Map<String, Object> getVideoInfoHttpMessage1(String videoPath) throws HttpException, Exception;

}
